﻿// --------------------------------------------------------------------------------------
// 	文 件 名: ImtIPS.h
// --------------------------------------------------------------------------------------
// 	创建时间: 2019/08/22
// 	版　　本: Version:  1.0.0
// 	版    权: Copyright (C) 2007 - 2016 NUCTECH All Rights Reserved
// 	作    者: chenyu
// --------------------------------------------------------------------------------------
// 	说    明: IPS管理接口。
// --------------------------------------------------------------------------------------
// 	修改历史:
// 			日期							改动
//		2019.08.22						  创建模块
// --------------------------------------------------------------------------------------

using SH;
using System.Collections.Generic;

namespace MTS
{
    public interface ImtIPSCallback
     : ImtCallback
    {
        const int _classID = 3628;

        const int IPSGetIpsStationStatus = 10;
        const int IPSIpsTask = 11;
        const int IPSNotifyIpsImageList = 12;
        const int IPSNotifyHighRiskState = 13;
        const int IPSNotifyComfirmConclusion = 14;

        /// <summary>
        ///  主动获取某个站点的站点状态。
        /// </summary>
        /// <returns></returns>
        [mtFuncID("GetIpsStationStatus", IPSGetIpsStationStatus)]
        public shErrorCode OnGetIpsStationStatus(mtIpsStationStatus info);

        /// <summary>
        /// 判图服务下发判图任务，仅判图站支持
        /// </summary>
        /// <returns></returns>
        [mtFuncID("IpsTask", IPSIpsTask)]
        public shErrorCode OnIpsTask(mtIpsTask task);

        /// <summary>
        /// 判图服务下发高危报警状态
        /// </summary>
        /// <returns></returns>
        [mtFuncID("NotifyHighRiskState", IPSNotifyHighRiskState)]
        public shErrorCode OnNotifyHighRiskState(mtIpsHighRiskState state);

        /// <summary>
        /// 判图服务下发确认结论
        /// </summary>
        /// <returns></returns>
        [mtFuncID("NotifyIpsImageList", IPSNotifyIpsImageList)]
        public shErrorCode OnNotifyIpsImageList(mtIpsImageList imageList);

        /// <summary>
        /// 判图服务下发手动保存结果
        /// </summary>
        /// <returns></returns>
        [mtFuncID("NotifyComfirmConclusion", IPSNotifyComfirmConclusion)]
        public shErrorCode OnNotifyComfirmConclusion(mtIpsComfirmConclusion conclusion);
    }

    public interface ImtIPS
    : Imt
    {
        /// <summary>
        /// IPS 发送站点信息，拥有判图服务进行认证注册用
        /// </summary>
        /// <returns>
        /// </returns>
        public shErrorCode SendIpsStationInfo(mtIpsStationInfo info);

        /// <summary>
        /// IPS站点上报状态
        /// </summary>
        /// <returns></returns>
        public shErrorCode SendIpsStationStatus(mtIpsStationStatus status);

        /// <summary>
        ///  获取所有 待判图、待开检、待确认任务，判图服务内的。
        /// </summary>
        /// <returns></returns>
        public shErrorCode GetIpsImageList(out mtIpsImageList imageList);

        /// <summary>
        ///  请求 待开检、待确认任务。
        /// </summary>
        /// <returns></returns>
        public shErrorCode ReqIpsTask(string prn, mtIpsTask task);

        /// <summary>
        /// 站点提交判图、开检结论
        /// </summary>
        /// <returns></returns>
        public shErrorCode SubmitConclusion(mtIpsResult result);

        /// <summary>
        /// 站点提交图像操作
        /// </summary>
        /// <returns></returns>
        public shErrorCode SubmitImageOperation(List<mtIpsImageOperation> vecOperation, out List<mtIpsImageOperationResult> vecResult);

        /// <summary>
        /// 查询历史图像操作
        /// </summary>
        /// <returns></returns>
        public shErrorCode QueryHistoryImageInfo(mtPicCriteria criteria, out List<mtPicinfo> vecIicinfos);

        public shErrorCode GetImageData(mtImageRequest req, out mtImageResponse rsp);

        public shErrorCode GetImageData(List<mtImageRequest> vecreq, out List<mtImageResponse> vecrsp);

        /// <summary>
        /// 获取资源字符串
        /// </summary>
        /// <returns></returns>
        public shErrorCode GetResourceString(string lang, out string resources);
	}
}